Java 221110

John·2022년 11월 11일
0

java

목록 보기
12/20

클래스와 메소드의 final 선언

public final class MyLastCLS {...}
→ MyLastCLS 클래스는 다른 클래스가 상속할 수 없음

class Simple {
// 아래의 메소드는 다른 클래스에서 오버라이딩 할 수 없음
public final void func(int n) {...}
}

상수는 처음 한번만 초기화된다
클래스와 메소드의 경우에는 상속되지않으며 오버라이딩을 할수없다.

Interface

//기본적으로 함수선언-추상함수-  와 상수가 올수있다
// interface = 자손이 구현(implement)하라.
interface Printable{
    public final double PI = 3.14;
    public abstract void print(String doc);
}
class Printer implements Printable{
    @Override
    public void print(String doc){
        System.out.println(doc);
    }
}
public class InterfaceBasic {
    public static void main(String[] args) {
        Printer printer = new Printer();
        printer.print("JKビッチの晒性活");
        //
        Printable printable = new Printer();
    }
}

interface 는 다중상속이가능하다
그러나 함수가 내장되어있지 않아
interface 로 구현해야한다.

class Robot extends Machine implements Movable, Runnable 

Robot 클래스는 Machine 클래스를 상속한다.
Robot 클래스는 Movable과 Runnable 인터페이스를 구현한다.

예시로, 하드웨어 드라이버가 interface를 활용하는 대표적인 프로그램이다


프린터 드라이버로 보는 예시

interface Printable { // MS가 정의하고 제공한 인터페이스
    public void print(String doc);
}

수많은 드라이버가 난립하자 MS가 표준을 정립했다

class SPrinterDriver implements Printable {
    @Override
    public void print(String doc) {
        System.out.println("From Samsung printer");
        System.out.println(doc);
    }
}
class LPrinterDriver implements Printable {
    @Override
    public void print(String doc) {
        System.out.println("From LG printer");
        System.out.println(doc);
    }
}

위의 표준 인터페이스를 상속받는 두 제조사의 프린터드라이버

개인컴퓨터에 있는드라이버는 이를 실행하면...

public class PrinterDriver {
    public static void main(String[] args) {
        String myDoc = "This is a report about...";
        // 삼성 프린터로 출력
        Printable prn = new SPrinterDriver();
        prn.print(myDoc);
        System.out.println();
        // LG 프린터로 출력
        prn = new LPrinterDriver();
        prn.print(myDoc);
    }
}

각 제조사별드라이버에서 구현화해야하지만
표준에 맞춰 작성된다

profile
hello there

0개의 댓글